package com.longcai.cm.base.aspect;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

/**
 * @author libingxing
 */
@Aspect
@Component
public class WebEncodeAspect {

    private static final Logger logger = LoggerFactory.getLogger(WebEncodeAspect.class);

    /**
     * //两个..代表所有子目录，最后括号里的两个..代表所有参数
     */
    @Pointcut("execution( * com.longcai.cm..controller.*.*(..))")
    public void webApiCut() {
    }


//    @Around("webApiCut()")
//    @ResponseBody
//    public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable {
//        logger.info("开始执行aop方法修改参数。。。");
//        //返回被织入增强处理的目标对象       getThis：返回AOP框架为目标对象生成的代理对象
//        Object target = joinPoint.getTarget();
//        //获取目标对象方法参数
//        Object[] args = joinPoint.getArgs();
//        //执行方法，以新的参数（如果不带args就是用原先的参数；这里带不带都可以是，上面方法获取原先参数的引用做的修改）
//        Object returnValue = joinPoint.proceed();
//        //若未设置，则不需要解密
//        final R result = JSON.parseObject(JSON.toJSONString(returnValue), R.class);
////        result.setData(Base64.encode(JSON.toJSONString(result.getData())));
//        result.setData(AesUtil.encodeToHex16(JSON.toJSONString(result.getData())));
//        return result;
//    }
}
